<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="./js/vue.js"></script>
</head>

<body>

    <div id="app">
        <!-- 
            侦听器案例:
                验证用户名是否可用
            步骤:
                1. 采用侦听器,监听用户名变化
                2. 如果用户名发生变化,调用后台接口进行验证
                3. 如果根据验证结果,调整提示信息
        -->
        <div>
            <span>用户名:</span>
            <span>
                <input type="text" v-model.lazy="uname">
            </span>
            <span>{{tip}}</span>

        </div>
    </div>

    <script lang="text/javascript">
        var vm = new Vue({
            el: "#app",
            data: {
                uname: '',
                tip: ''
            },
            methods: {
                checkUname: function (uname) {
                    // setTimeout 中的this是window, 所以在外面缓存一下this
                    let that = this
                    // 调用接口, 可以使用定时任务的方式模拟接口调用
                    setTimeout(function(){
                        // 模拟接口调用, 
                        if(uname=='admin'){
                            that.tip='用户名已经存在,请更换一个!'
                        }else{
                            that.tip='用户名可以使用!'
                        }
                    },2000);
                }
            },
            watch: {
                'uname': function (val) {
                    // 调用后台接口验证用户名的合法性
                    this.checkUname(val);
                    this.tip='正在验证...'


                }
            }

        })
    </script>

</body>

</html>